#include"thread.h"
#include"logger.h"
/* 用pthread_create创建线程, 第三个参数为线程函数指针，为taskFunc,
 * 为了与 void * func (void *) 类型对应，
 * taskFunc设置为static函数（去除this指针的影响）
 * arg传入this指针，原本this为Thread * const this。
 * 为了便于线程函数使用Thread类对象中的属性成员，把this强转为Thread*
 */
void * Thread::taskFunc(void* arg)
{
    Thread* thread = static_cast<Thread*>(arg);
    LOG_INFO << thread->m_tid;
}
Thread::Thread()
{
    /* 用pthread_create创建线程, 
     * 第三个参数为线程函数指针，为taskFunc,
     * taskFunc为static函数（无this指针的影响）
     * arg传入this指针
     */
    if(0 != pthread_create(&m_tid, NULL, taskFunc, this))
    {
        LOG_ERROR << "Create thread Failed!";
    }
}
Thread::~Thread()
{

}
#define __TEST__
#ifdef __TEST__
#include<unistd.h>  //sleep
int main()
{
    Thread t;
    sleep(1);
    return 0;
}
#endif